1. Field of the Invention
An apparatus consistent with the present invention relates to an input system based on a three-dimensional inertial navigation system and a trajectory estimation method thereof.
2. Description of the Related Art
With progress in the information age, it is more frequently demanded to access and produce information anytime and anywhere, rather than a specific space in computers-equipped environments. Such demands are satisfied with personal portable devices that have been developed and are widely spread, but further research is still required on input systems suitable for such personal portable devices. The specifications required for the input system for personal portable devices include an easy-to-carry and easy-to-input device, thus, there is a demand to develop an input system that is smaller than personal portable devices as well as being easy-to-carry. Further, the nature of the personal portable devices is to facilitate the inputs of new data anytime and anywhere, so that an input system is required which enables users to input such data as they naturally write. In particular, if such an input system can recover writing motions as naturally done on a general plane, a free space, or a sheet of paper so as to enable users to input characters, graphics, gestures, and so on, the input system can be utilized as an excellent input system since it is excellent in the aspect of “universal purpose” and also does not require a particular learning course for use.
Accordingly, in order to meet the demands on the input system as described above, an input system has been proposed that can input data in space using the concept of a three-dimensional inertial navigation system.
The three-dimensional inertial navigation system refers to a system that detects three-axis acceleration information and three-axis angular velocity information and applies the detected information to a moving object in order to estimate positions and attitudes of the moving object in the three-dimensional space. The three-dimensional inertial navigation system calculates the attitudes of the object and corrects the acceleration information using an integral value of angular velocity information estimation values, accordingly, calculates velocity information by integrating the corrected acceleration information once, and calculates position information by integrating the corrected acceleration information twice.
FIG. 1 is a block diagram illustrating an input system using a conventional inertial navigation system.
The input system using the conventional inertial navigation system includes an input part 10 and a host device 20.
The host device 20 displays an image corresponding to motions based on the motions from the input part 10.
The input part 10 includes acceleration sensors 11, angular velocity sensors 12, a rotation angle information-computing unit 13, conversion-computing unit 14, and a transmission unit 15.
The acceleration sensors 11 generate acceleration information Ab(Abx, Aby, Abz) corresponding to motions based on the motions of the input part 10, and output the same to the conversion-computing unit 14. The subscript b in the acceleration information denotes acceleration information for a body frame of the input part and the subscripts x, y, and z denote information on x-axis, y-axis, and z-axis.
The angular velocity sensors 12 generate angular velocity information Wb(Wbx, Wby, Wbz) corresponding to motions based on the motions of the input part 10, and output the same to the rotation angle information-computing unit 13. The subscript b of the angular velocity information denotes angular velocity information for the body frame of the input part, and the subscripts x, y, and z denote information on x-axis, y-axis, and z-axis.
The rotation angle information-computing unit 13 inputs angular velocity information from the angular velocity sensors 12. The inputted angular velocity information is converted into rotation angle information χ(Φ, θ, ψ) through a predetermined computing process. The predetermined computing process for the conversion into the rotation angle information is well known to those skilled in the art, so a detailed description on the process will be omitted in the disclosure.
The conversion-computing unit 14 inputs acceleration information and rotation angle information. The conversion-computing unit 14 calculates the attitudes of the input part 10 based on the rotation angle information, corrects the acceleration information based on the rotation angle information, calculates velocity information by integrating the corrected acceleration information once, and calculates position information by integrating the corrected acceleration information twice. Such calculations can be performed based on Equations 1, 2, and 3 as follows.
Prior to explanations of the following Equations, definitions are made for terms used in the Equations as follows:                A body frame is a frame from which acceleration information and angular velocity information can be detected in correspondence to actual motions of the input part 10.        A navigation frame is a reference frame for calculating information applicable for a host device 20 by applying predetermined computing matrices based on a result detected from the body frame. Herein, the coordinate axes for the navigation frame are referred to as X0, Y0, and Z0.        Rotation angle information is as follows: The coordinate axes for the navigation frame and the body frame coincide with each other when there is no rotation at an initial time. When the navigation frame and the body frame coincide with each other at the initial time and the coordinate axes for the body frame are referred to as X0, Y0, and Z0, Ψ denotes the rotation angle information for the Z0 axis. Further, θ denotes rotation angle information for a Y1 axis indicating an axis after the Y0 axis is rotated as much as Ψ. Φ denotes rotation angle information for a X2 axis indicating an axis after the X0 axis is rotated as much as Ψ and θ, respectively.        A 3×3 matrix for converting a vector in the body frame into a vector in the navigation frame is as follows:        
            C      b      n        ⁡          (      χ      )        =      [                                                      θ              c                        ⁢                          Ψ              c                                                                                          -                                  ϕ                  c                                            ⁢                              Ψ                s                                      +                                          ϕ                s                            ⁢                              θ                s                            ⁢                              Ψ                c                                                                                                        ϕ                s                            ⁢                              Ψ                s                                      +                                          ϕ                c                            ⁢                              θ                s                            ⁢                              Ψ                c                                                                                                    θ              c                        ⁢                          Ψ              s                                                                                          ϕ                c                            ⁢                              Ψ                c                                      +                                          φ                s                            ⁢                              θ                s                            ⁢                              Ψ                s                                                                                                        -                                  ϕ                  s                                            ⁢                              Ψ                c                                      +                                          ϕ                c                            ⁢                              θ                s                            ⁢                              Ψ                s                                                                                      -                          θ              s                                                                          ϕ              s                        ⁢                          θ              c                                                                          ϕ              c                        ⁢                          θ              c                                            ]  
In here, the subscripts s, c, and t stand for sine, cosine, and tangent functions, respectively, and the χ denotes rotation angle information in a 3×1 matrix.                The following is a matrix for calculating the rotation angle information based on the angular velocity information in the body frame:        
      R    ⁡          (      χ      )        =      [                            1                                                    ϕ              s                        ⁢                          θ              t                                                                          ϕ              c                        ⁢                          θ              t                                                            0                                      ϕ            c                                                -                          ϕ              s                                                            0                                                    ϕ              s                        /                          θ              c                                                                          ϕ              c                        /                          θ              c                                            ]  
Here, the subscripts s, c, and t stand for sine, cosine, and tangent functions, respectively, and the χ denotes the rotation angle information in a 3×1 matrix.
If the Ab denotes the acceleration information in the body frame, the Wb denotes the angular velocity information in the body frame, R denotes a matrix for calculating the rotation angle information based on the angular velocity information in the body frame, G is the gravitational acceleration, and the Cbn denotes a matrix for converting a vector in the body frame into a vector in the navigation frame, position information in the navigation frame is Pn, velocity information in the navigation frame is Vn, and the rotation angle information is χ. These variables can be expressed in Equations 1, 2, and 3 as follows:dPn=Vn  [Equation 1]dVn=Cbn(χ)Ab−G  [Equation 2]dχ=R(χ)Wb  [Equation 3]
Here, Pn, Vn, Ab, G, and Wb are a 3×1 matrix, respectively, G is a matrix of [0,0, g]T, and dPn, dVn, and dχ denotes differentiations of Pn, Vn, and χ with respect to time, respectively.
Accordingly, the acceleration information and the angular velocity information for the body frame outputted from the acceleration sensors and the angular velocity sensors respectively are computed and converted into velocity information and position information for the navigation frame, and a motion image corresponding to motions in the three-dimensional space based on the conversion-computed position information is projected to an optimal projection plane, and then outputted to the transmission unit 15.
The transmission unit 15 outputs the projected position information to the host device 20.
By the above fashion, the motions of the input part 10 are displayed on the host device 20.
However, with both the acceleration sensors and the angular velocity sensors used as above, the input part becomes heavy, which brings out a drawback that it is not suitable for portability. Also, there is a drawback in that the price of the angular velocity sensors is so high that the input parts using them become expensive. Further, there exists a drawback in that an amount of power consumption becomes large since the angular velocity sensors and the acceleration sensors have to be all driven. Furthermore, there exists troublesomeness in that a correction job has to be performed in case that the input part is equipped with the angular velocity sensors since the use of the angular velocity sensors inevitably requires an initial correction job.